#ifndef CASE_HH_
# define CASE_HH_

# include <vector>
# include <string>
# include "ant.hh"
# include "ant_type.hh"

class Ants;

class Case
{
public:
  Case ();
  ~Case ();

  bool is_empty ();
  bool is_ant ();

  void set_full ()
  {
    empty_ = false;
  }
  void set_empty ()
  {
    empty_ = true;
  }

  void add_pB (int team);
  void sub_pB (int team);
  int get_pB (int team);

  void add_pF (int team);
  void sub_pF (int team);
  int get_pF (int team);

  void add_pW (int team);
  void sub_pW (int team);
  int get_pW (int team);

  void add_pQ (int team);
  void sub_pQ (int team);
  int get_pQ (int team);

  void set_food (int nb);
  void sub_food ();
  int get_food ();
  void set_food_type (std::string name);

  int get_interest_queen (int team);
  int get_interest_food (int team);
  int get_interest_water (int team);

  e_ant get_food_type ();

  void set_ant (Ants* ant);
  Ants& get_ant ();

private:
  bool	empty_;
  std::vector<int>	nb_pB_;		// Battle pheromone
  std::vector<int>	nb_pF_;		// Food Pheromone
  std::vector<int>	nb_pW_;		// Water Pheromone
  std::vector<int>	nb_pQ_;		// Queen pheromone
  int	nb_food_;	// >0 if contain food
  e_ant type_food_;	// food type if contain food {water, food}
  Ants* ant_;
};

#endif /*! CASE_HH_ */
